package com.bi.vo;

import com.bi.entity.WideTable;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 数据宽表视图对象
 * 
 * @author BI Platform Team
 * @since 1.0.0
 */
@Data
public class WideTableVO {

    /**
     * 宽表ID
     */
    private Long id;

    /**
     * 宽表名称
     */
    private String name;

    /**
     * 显示名称
     */
    private String displayName;

    /**
     * 宽表描述
     */
    private String description;

    /**
     * 类型
     */
    private WideTable.WideTableType type;

    /**
     * 类型描述
     */
    private String typeDescription;

    /**
     * 数据源配置
     */
    private String dataSource;

    /**
     * Elasticsearch索引名称
     */
    private String esIndexName;

    /**
     * 表配置信息
     */
    private Object tableConfig;

    /**
     * 状态
     */
    private WideTable.WideTableStatus status;

    /**
     * 状态描述
     */
    private String statusDescription;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 宽表字段列表
     */
    private List<WideTableFieldVO> fields;

    /**
     * 数据总数
     */
    private Long dataCount;

    /**
     * 显示字段数量
     */
    private Integer displayFieldCount;

    /**
     * 查询字段数量
     */
    private Integer queryFieldCount;
}